package com.shm.leetcode;

/**
 * 387. 字符串中的第一个唯一字符
 * 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
 *
 *
 *
 * 示例：
 *
 * s = "leetcode"
 * 返回 0
 *
 * s = "loveleetcode"
 * 返回 2
 *
 *
 * 提示：你可以假定该字符串只包含小写字母。
 * @author SHM
 */
public class FirstUniqChar {
    public int firstUniqChar(String s) {
        int[] ss = new int[26];
        for(int i = 0;i<s.length();i++){
            ss[s.charAt(i)-'a']++;
        }
        for(int i = 0;i<s.length();i++){
            if(ss[s.charAt(i)-'a']==1){
                return i;
            }
        }
        return -1;
    }

    /**
     * 3，使用Java的api
     * 一个从前查找，一个从后查找，如果下标相等，说明只出现了一次
     * @param s
     * @return
     */
    public int firstUniqChar_2(String s) {
        for(int i = 0;i<s.length();i++){
            if(s.indexOf(s.charAt(i))==s.lastIndexOf(s.charAt(i))){
                return i;
            }
        }
        return -1;
    }
}
